Qu'est-ce que 'basic' attribute type should not be a container ?

"'Basic' attribute type should not be a container" is a programming principle that suggests not using container types, such as arrays or lists, for basic attribute types in object-oriented programming languages.

In object-oriented programming, attributes represent the state or characteristics of an object. These attributes can have different types like integers, strings, or booleans. However, it is considered good practice to avoid using container types as attribute types for basic attributes.

Container types are designed to hold a collection of elements rather than representing a single value. They provide functionalities like adding, removing, or accessing multiple elements. Examples of container types are arrays, lists, sets, and dictionaries.

Using a container type for a basic attribute violates the principle of encapsulation and can lead to poor code readability and maintainability. It makes it harder to reason about the state of an object because the attribute's value can change dynamically.

Instead, it is recommended to use the appropriate basic attribute type that best represents the desired data. For example, if you need to store a single value, use a primitive type like an integer or a string.

By using basic attribute types that are not containers, you ensure that the attribute remains simple and focused on its primary purpose. It also makes the code more self-explanatory and easier to understand for other developers.

However, there may be cases where using container types for attributes is necessary. For example, if you need to represent a collection of values as an attribute, then a container type like a list or an array would be suitable. But it is important to carefully consider the design and usage of container types as attribute types to avoid potential pitfalls.